package wangwenjun.phase1.ticketwindow;

/**
 * @author ChangLiang
 * @date 2020/6/13
 */
public final class TicketWindowV8 {

    private final int init;

    public TicketWindowV8(int init) {
        this.init = init;
    }

    /**
     * 构造新的累加器，需要用到另外一个accumulator 和初始值
     * @param ticketWindowV8
     * @param delta
     */
    public TicketWindowV8(TicketWindowV8 ticketWindowV8, int delta) {
        this.init = ticketWindowV8.getValue() + delta;
    }

    /**
     * 每次相加都会产生一个新的TicketWindowV8
     * add 方法并未在原有init 的基础之上进行累加，而是创建了一个全新的IntegerAccumulator
     * 并未提供任何修改原始IntegerAccumulator的机会
     * @param delta
     * @return
     */
    public TicketWindowV8 add(int delta) {
        return new TicketWindowV8(this, delta);
    }

    public int getValue() {
        return this.init;
    }
}
